package com.example.tupu;



import com.example.tupu.entity.Figure;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface Neo4jService {

    /**
     * 查找人物类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findFigureAllByTitle(String title) throws Exception;

    /**
     * 查找朝代类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findDynastyAllByTitle(String title) throws Exception;

    /**
     * 查找事件类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findEventAllByTitle(String title) throws Exception;

    /**
     * 查找官职类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findOfficeAllByTitle(String title) throws Exception;

    /**
     * 查找籍贯类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findBirthplaceAllByTitle(String title) throws Exception;

    /**
     * 查找城镇类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findTownAllByTitle(String title) throws Exception;

    /**
     * 查找河道类型节点的相关节点数据
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findRiverwayAllByTitle(String title) throws Exception;

    /**
     * 限制查询多少人
     * @param title
     * @param limit
     * @return
     */
    List<Figure> getFigure(String title, int limit);

    /**
     * 根据年份来查询相关事件并返回事件的坐标节点
     * @param startyear
     * @param endyear
     * @param title
     * @return
     * @throws IOException
     */
    List<Map<String,Object>>  findEvenByAdyear(Long startyear, Long endyear,String title) throws IOException;

    /**
     * 根据年份来查询相关人物并返回人物的相关坐标节点
     * @param startyear
     * @param endyear
     * @param title
     * @return
     * @throws IOException
     */
    List<Map<String,Object>> findFigureByYear(Long startyear, Long endyear,String title) throws IOException;

    //06-03
    /**
     * 查找初始节点的相关节点数据
     * @param title
     * @return
     * @throws IOException
     */
    List<Object> findNodeAllByTitle(String title) throws IOException;

    /**
     * 查询所有红色旅游经典景区的坐标
     * @param title
     * @return
     * @throws IOException
     */
    List<Map<String,Object>> getRuinAll(String title) throws IOException;

    /**
     * 查询运河的坐标
     * @param title
     * @return
     * @throws Exception
     */
    List<Object> findRiverwayJwdByTitle(String title) throws Exception;

    /**
     * 查询城镇地理坐标
     * @param title
     * @return
     * @throws Exception
     */
    List findTownJwdByTitle(String title) throws Exception;

    /**
     * 查询红色景点类型的节点数据
     * @param title
     * @return
     * @throws IOException
     */
    List<Object> findRuinAllByTitle(String title) throws IOException;

    /**
     * 模糊查询提示
     * @param title 查询的数据
     * @return
     */
    List<Object> findLike(String title);

}
